#ifndef SKYBOX_H
#define SKYBOX_H

#include "Config/Export.h"
#include "Core/IDrawable.h"
#include "Core/Texture3D.h"
#include "Core/IRenderBox.h"
#include "Maths/TVector3.h"

namespace blue {

class SHARED Skybox : public IDrawable
{
public:

  Skybox(const char *back, const char *front,
	 const char *bottom, const char *top,
	 const char *right, const char *left);
  ~Skybox();

  void load(const char *back, const char *front,
	    const char *bottom, const char *top,
	    const char *right, const char *left);

  void setPosition(const Vector3d &pos);
  void setSize(float size);

  const float getSize() const;
  const Vector3d &getPosition() const;

  virtual void draw();

 private:

  void create(const char *back, const char *front,
	      const char *bottom, const char *top,
	      const char *right, const char *left);

  Skybox(Skybox&);
  const Skybox &operator=(Skybox&);

  Texture3D *cubemap;
  float _size;
  Vector3d _pos;

  IRenderBox *rdrbox;

};

}

#endif
